# Домашнее задание к занятию 2 «Кластеризация и балансировка нагрузки»
## Задание 1
Запустите два simple python сервера на своей виртуальной машине на разных портах
Установите и настройте HAProxy, воспользуйтесь материалами к лекции по ссылке
Настройте балансировку Round-robin на 4 уровне.
На проверку направьте конфигурационный файл haproxy, скриншоты, где видно перенаправление запросов на разные серверы при обращении к HAProxy.
## Ответ.
```Bash

listen stats
    bind             :888
    mode             http
    stats            enable
    stats uri        /stats
    stats refresh    5s

frontend example
    mode             http
    bind             :8088
    default_backend web_servers

backend web_servers
    mode            http
    balance         roundrobin
    option          httpchk
    http-check      send meth GET uri /index.html
    server s1 127.0.0.1:8888 check
    server s2 127.0.0.1:9999 check

listen web_tcp

    bind            :1325
    server s1 127.0.0.1:8888 check inter 3s
    server s2 127.0.0.1:9999 check inter 3s


```
![Скрин 1](https://github.com/MalovAleksey/DZ/blob/main/Снимок%20экрана%20от%202023-10-26%2016-15-25.png)

![Cкрин 2](https://github.com/MalovAleksey/DZ/blob/main/Снимок%20экрана%20от%202023-10-26%2016-23-22.png)

## Задание 2
Запустите три simple python сервера на своей виртуальной машине на разных портах
Настройте балансировку Weighted Round Robin на 7 уровне, чтобы первый сервер имел вес 2, второй - 3, а третий - 4
HAproxy должен балансировать только тот http-трафик, который адресован домену example.local
На проверку направьте конфигурационный файл haproxy, скриншоты, где видно перенаправление запросов на разные серверы при обращении к HAProxy c использованием домена example.local и без него.
## Ответ.
```Bash
listen stats
    bind             :888
    mode             http
    stats            enable
    stats uri        /stats
    stats refresh    5s

frontend example
    mode             http
    bind             :8088
   # default_backend web_servers
    acl ACL_example.local hdr(host) -i example.local
    use_backend web_servers if ACL_example.local

backend web_servers
    mode            http
    balance         roundrobin
    option          httpchk
    http-check      send meth GET uri /index.html
    server s1 127.0.0.1:8888 check  weight  2
    server s2 127.0.0.1:9999 check  weight  3
    server s3 127.0.0.1:7777 check  weight  4


```
![Скрин 3](https://github.com/MalovAleksey/DZ/blob/main/Снимок%20экрана%20от%202023-10-26%2017-13-36.png)
